Long distance telephone facilities usually comprise four-wire transmission circuits between switching offices in different local exchange areas, and two-wire circuits within each area connecting individual subscribers with the switching office. A call between subscribers in different exchange areas is carried over a two-wire circuit in each of the areas and a four-wire circuit between the areas, with conversion of speech energy between the two and four-wire circuits being effected by hybrid circuits. Ideally, the hybrid circuit input ports perfectly match the impedances of the two and four-wire circuits, and its balanced network impedance perfectly matches the impedance of the two-wire circuit. In this manner, the signals transmitted from one exchange area to the other will not be reflected or returned to the one area as echo. Unfortunately, due to impedance differences which inherently exist between different two and four-wire circuits, and because impedances must be matched at each frequency in the voice band, it is virtually impossible for a given hybrid circuit to perfectly match the impedances of any particular two and four-wire transmission circuit. Echo is, therefore, characteristically part of a long distance telephone system.
Although undesirable, echo is tolerable in a telephone system so long as the time delay in the echo path is relatively short, for example, shorter than about 40 milliseconds. However, longer echo delays can be distracting or utterly confusing to a far end speaker, and to reduce the same to a tolerable level an echo canceller may be used toward each end of the path to cancel echo which otherwise would return to the far end speaker. As is known, echo cancellers monitor the signals on the receive channel of a four-wire circuit and generate estimates of the actual echoes expected to return over the transmit channel. The echo estimates are then applied to a subtractor circuit in the transmit channel to remove or at least reduce the actual echo.
In simplest form, generation of an echo estimate comprises obtaining individual samples of the signal on the receive channel, convolving the samples with the impulse response of the system and then subtracting, at the appropriate time, the resulting products or echo estimates from the actual echo on the transmit channel. In actual practice generation of an echo estimate is not nearly so straightforward.
Transmission circuits, except those which are purely resistive, exhibit an impulse response has amplitude and phase dispersive characteristics that are frequency dependent, since phase shift and amplitude attenuation vary with frequency. To this end, a suitable known technique for generating an echo estimate contemplates manipulating representations of a plurality of samples of signals which cause the echo and samples of impulse responses of the system through a convolution process to obtain an echo estimate which reasonably represents the actual echo expected on the echo path. One such system is illustrated in FIG. 1.
In the system illustrated in FIG. 1, a far end signal x from a remote telephone system is received locally at line 10. As a result of the previously noted imperfections in the local system, a portion of the signal x is echoed back to the remote site at line 15 along with the signal v from the local telephone system. The echo response is illustrated here as a signal s corresponding to the following equation:
s=h*x 
where h is the impulse response of the echo characteristics. As such, the signal sent from the near end to the far end, absent echo cancellation, is the signal y, which is the sum of the telephone signal v and the echo signals. This signal is illustrated as y at line 15 of FIG. 1.
To reduce and/or eliminate the echo signal component s from the signal y, the system of FIG. 1 uses an echo canceller having an impulse response filter {overscore (h)} that is the estimate of the impulse echo response h. As such, a further signal {overscore (s)} representing an estimate of echo signal s is generated by the echo canceller in accordance with the following equation:
{overscore (s)}={overscore (h)}*x 
The echo canceller subtracts the echo estimate signal {overscore (s)} from the signal y to generate a signal e at line 20 that is returned to the far end telephone system. The signal e thus corresponds to the following equation:
e=s+vxe2x88x92{overscore (s)}≈v 
As such, the signal returned to the far end station is dominated by the signal v of the near end telephone system. As the echo impulse response {overscore (h)} more closely correlates to the actual echo response h, then {overscore (s)} more closely approximates s and thus the magnitude of the echo signal component s on the signal e is more substantially reduced.
The echo impulse response model {overscore (h)} may be replaced by an adaptive digital filter having an impulse response ĥ. Generally, the tap coefficients for such an adaptive response filter are found using a technique known as Normalized Least Mean Squares adaptation.
Although such an adaptive echo canceller architecture provides the echo canceller with the ability to readily adapt to changes in the echo path response h, it is highly susceptible to generating sub-optimal echo cancellation responses in the presence of xe2x80x9cdouble talkxe2x80x9d (a condition that occurs when both the speaker at the far end and the speaker at the near end are speaking concurrently as determined from the viewpoint of the echo canceller).
To reduce this sensitivity to double-talk conditions, it has been suggested to use both a non-adaptive response and an adaptive response filter in a single echo canceller. One such echo canceller is described in U.S. Pat. No. 3,787,645, issued to Ochiai et al on Jan. 22, 1974. Such an echo canceller is now commonly referred to as a dual-H echo canceller.
Although the dual-H echo canceller architecture of the ""645 patent provides substantial improvements over the use of a single filter response architecture, the ""645 patent is deficient in many respects and lacks certain teachings for optimizing the use of such a dual-H architecture in a practical echo canceller system. For example, the present inventors have recognize that the adaptation gain used to adapt the tap coefficients of the adaptive filter may need to be altered based on certain detected conditions. These conditions include conditions such as double-talk, non-linear echo response paths, high background noise conditions, etc. The present inventors have recognized the problems associated with the foregoing dual-H architecture and have provided solutions to such conditions.
A first method embodiment of the invention is useful for processing coefficients corresponding to filter taps in an echo canceller. In such an environment, the method comprises dividing the coefficients into a plurality of groups of one or more of the coefficients. The plurality of groups is ordered according to significance where an order of the groups may be non-contiguous. A first plurality of groups is identified from the plurality of groups with a highest significance. A second plurality of groups is identified from the plurality of groups and outside the first plurality of groups, and the coefficients in the first plurality of groups is adapted separately from the coefficients of the second plurality of groups.
A first apparatus embodiment of the invention includes an echo canceller comprising a divider that divides coefficients in the echo canceller into a plurality of groups of one or more of the coefficients. An orderer orders the plurality of groups according to significance where an order of the groups may be non-contiguous. A first identifier identifies a first plurality of groups from the plurality of groups with a highest significance. A second identifier identifies a second plurality of groups from the plurality of groups and outside the first plurality of groups, and an adapter adapts the coefficients in the first plurality of groups separately from the coefficients of the second plurality of groups.
A second apparatus embodiment of the invention includes an echo canceller comprising:
means for dividing coefficients in the echo canceller into a plurality of groups of one or more of the coefficients;
means for ordering the plurality of groups according to significance where an order of the groups may be non-contiguous;
means for identifying a first plurality of groups from the plurality of groups with a highest significance;
means for identifying a second plurality of groups from the plurality of groups and outside the first plurality of groups; and
means for adapting the coefficients in the first plurality of groups separately from the coefficients of the second plurality of groups.
A second method embodiment of the invention is useful for processing coefficients corresponding to filter taps in an echo canceller. In such an environment, the method comprises dividing the coefficients into a plurality of groups of one or more of the coefficients. A first plurality of groups is identified from the plurality of groups with a highest significance where the first plurality of groups comprises non-contiguous groups. A second plurality of groups is identified from the plurality of groups and outside the first plurality of groups, and the coefficients are adapted in the first plurality of groups separately from the coefficients of the second plurality of groups.
A third apparatus embodiment of the invention includes an echo canceller comprising:
means for dividing coefficients in the echo canceller into a plurality of groups of one or more of the coefficients;
means for identifying a first plurality of groups from the plurality of groups with a highest significance where the first plurality of groups comprises non-contiguous groups;
means for identifying a second plurality of groups from the plurality of groups and outside the first plurality of groups; and
means for adapting the coefficients in the first plurality of groups separately from the coefficients of the second plurality of groups.
A fourth apparatus embodiment of the invention includes an echo canceller comprising a divider that divides coefficients in the echo canceller into a plurality of groups of one or more of the coefficients. A first identifier identifies a first plurality of groups from the plurality of groups with a highest significance where the first plurality of groups comprises non-contiguous groups. A second identifier identifies a second plurality of groups from the plurality of groups and outside the first plurality of groups, and an adapter adapts the coefficients in the first plurality of groups separately from the coefficients of the second plurality of groups.
A fifth apparatus embodiment of the invention includes a computer-readable medium having stored thereon sequences of instructions, the sequences of instructions including instructions which, when executed by a processor, causes the processor to perform the steps of dividing coefficients in an echo canceller into a plurality of groups of one or more of the coefficients. The plurality of groups is ordered according to significance where an order of the groups may be non-contiguous. A first plurality of groups is identified from the plurality of groups with a highest significance. A second plurality of groups is identified from the plurality of groups and outside the first plurality of groups, and the coefficients are adapted in the first plurality of groups separately from the coefficients of the second plurality of groups.
A sixth apparatus embodiment of the invention includes a computer-readable medium having stored thereon sequences of instructions, the sequences of instructions including instructions which, when executed by a processor, causes the processor to perform the steps of dividing coefficients in an echo canceller into a plurality of groups of one or more of the coefficients. A first plurality of groups is identified from the plurality of groups with a highest significance where the first plurality of groups comprises non-contiguous groups. A second plurality of groups is identified from the plurality of groups and outside the first plurality of groups, and the coefficients in the first plurality of groups are adapted separately from the coefficients of the second plurality of groups.